
JaxsonObject = function(config){
	
	var superClasses = [];
	
	var that = {
		isA : function(name){
			return (that.getClass && that.getClass() === name) || superClasses[name] !== undefined;
		},
		
		setSuperClasses : function( arr ){
			superClasses = arr;
		},
		
		getSuperClass : function(name){
			return superClasses[name];
		},
		
		getSuperClasses : function(){
			return superClasses;
		},
		extend : function(sup){
			
			if( that.isA && that.isA(sup) ){
				throw "IllegalArgumentException: instance already inherits from " + sup;
			}
			
			var parent = eval( sup );
			parent = new parent(config);
			
			for( i in parent ){
				
				if( !that[i] ){
					that[i] = parent[i];
				}
			}
			
			return that;
		}
	};
	
	return that;
};